❓ Какие есть подходы к реализации кеширования данных?
1. Простое кеширование с использованием коллекций
Один из базовых способов — это использование стандартных коллекций, таких как HashMap, для хранения кешированных данных. Такой подход подходит для небольших проектов, где важна простота, но он не решает вопросов управления размером кеша, его очистки или устойчивости к памяти.
2. LRU (Least Recently Used) кеширование
Этот метод используется, когда необходимо удалять из кеша давно используемые объекты. Это можно реализовать через LinkedHashMap, у которого есть встроенная поддержка порядка доступа. Подходит для кеширования, где важно ограничить размер кеша и удалять старые данные по мере заполнения. 3. Использование слабых и мягких ссылок
SoftReference — используется для кешей, которые могут быть удалены только в случае нехватки памяти. Это полезно, когда объекты кешируются, но их можно безопасно уничтожить, если система нуждается в памяти.
WeakReference — используется для более "легких" объектов, которые могут быть собраны сборщиком мусора сразу, как только на них не будет ссылок. Это подходит для краткоживущих данных.
4. Кеш с ограничением по времени (Time-based Caching)
Данные в таком кеше автоматически удаляются или обновляются после заданного времени. Это особенно полезно для данных, которые устаревают со временем, например, результаты запросов к базе данных или API.
5. Распределённое кеширование
Если приложение распределено, кеширование можно реализовать с использованием внешних инструментов, таких как Redis или Memcached, которые позволяют кешировать данные на уровне нескольких серверов и обеспечивать консистентность данных в распределённых системах.
❓ Какие есть подходы к реализации кеширования данных?
1. Простое кеширование с использованием коллекций
Один из базовых способов — это использование стандартных коллекций, таких как HashMap, для хранения кешированных данных. Такой подход подходит для небольших проектов, где важна простота, но он не решает вопросов управления размером кеша, его очистки или устойчивости к памяти.
2. LRU (Least Recently Used) кеширование
Этот метод используется, когда необходимо удалять из кеша давно используемые объекты. Это можно реализовать через LinkedHashMap, у которого есть встроенная поддержка порядка доступа. Подходит для кеширования, где важно ограничить размер кеша и удалять старые данные по мере заполнения. 3. Использование слабых и мягких ссылок
SoftReference — используется для кешей, которые могут быть удалены только в случае нехватки памяти. Это полезно, когда объекты кешируются, но их можно безопасно уничтожить, если система нуждается в памяти.
WeakReference — используется для более "легких" объектов, которые могут быть собраны сборщиком мусора сразу, как только на них не будет ссылок. Это подходит для краткоживущих данных.
4. Кеш с ограничением по времени (Time-based Caching)
Данные в таком кеше автоматически удаляются или обновляются после заданного времени. Это особенно полезно для данных, которые устаревают со временем, например, результаты запросов к базе данных или API.
5. Распределённое кеширование
Если приложение распределено, кеширование можно реализовать с использованием внешних инструментов, таких как Redis или Memcached, которые позволяют кешировать данные на уровне нескольких серверов и обеспечивать консистентность данных в распределённых системах.
Telegram today rolling out an update which brings with it several new features.The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations.
Telegram auto-delete message, expiring invites, and more
elegram is updating its messaging app with options for auto-deleting messages, expiring invite links, and new unlimited groups, the company shared in a blog post. Much like Signal, Telegram received a burst of new users in the confusion over WhatsApp’s privacy policy and now the company is adopting features that were already part of its competitors’ apps, features which offer more security and privacy. Auto-deleting messages were already possible in Telegram’s encrypted Secret Chats, but this new update for iOS and Android adds the option to make messages disappear in any kind of chat. Auto-delete can be enabled inside of chats, and set to delete either 24 hours or seven days after messages are sent. Auto-delete won’t remove every message though; if a message was sent before the feature was turned on, it’ll stick around. Telegram’s competitors have had similar features: WhatsApp introduced a feature in 2020 and Signal has had disappearing messages since at least 2016.
Библиотека собеса по Java | вопросы с собеседований from cn